package com.gitee.qdbp.general.common.api.sequence.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 简单序列号查询类
 *
 * @author zhh
 * @version 180509
 */
public class SimpleSequenceWhere extends SimpleSequenceBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 主键列表 **/
    private List<String> ids;

    /** 主键前模匹配条件 **/
    private String idStarts;

    /** 主键后模匹配条件 **/
    private String idEnds;

    /** 主键模糊查询条件 **/
    private String idLike;

    /** 类型空值/非空值查询 **/
    private Boolean typeIsNull;

    /** 类型列表 **/
    private List<String> types;

    /** 类型前模匹配条件 **/
    private String typeStarts;

    /** 类型后模匹配条件 **/
    private String typeEnds;

    /** 类型模糊查询条件 **/
    private String typeLike;

    /** 子类型空值/非空值查询 **/
    private Boolean subtypeIsNull;

    /** 子类型前模匹配条件 **/
    private String subtypeStarts;

    /** 子类型后模匹配条件 **/
    private String subtypeEnds;

    /** 子类型模糊查询条件 **/
    private String subtypeLike;

    /** 名称空值/非空值查询 **/
    private Boolean nameIsNull;

    /** 名称前模匹配条件 **/
    private String nameStarts;

    /** 名称后模匹配条件 **/
    private String nameEnds;

    /** 名称模糊查询条件 **/
    private String nameLike;

    /** 前缀空值/非空值查询 **/
    private Boolean prefixIsNull;

    /** 前缀前模匹配条件 **/
    private String prefixStarts;

    /** 前缀后模匹配条件 **/
    private String prefixEnds;

    /** 前缀模糊查询条件 **/
    private String prefixLike;

    /** 序号的位数(仅在有前缀时生效)空值/非空值查询 **/
    private Boolean digitNumberIsNull;

    /** 最小序号的位数(仅在有前缀时生效) **/
    private Integer digitNumberMin;

    /** 最大序号的位数(仅在有前缀时生效) **/
    private Integer digitNumberMax;

    /** 初始值(0表示随机初始值, 大于0表示指定初始值)空值/非空值查询 **/
    private Boolean initValueIsNull;

    /** 最小初始值(0表示随机初始值, 大于0表示指定初始值) **/
    private Long initValueMin;

    /** 最大初始值(0表示随机初始值, 大于0表示指定初始值) **/
    private Long initValueMax;

    /** 当前值空值/非空值查询 **/
    private Boolean currValueIsNull;

    /** 最小当前值 **/
    private Long currValueMin;

    /** 最大当前值 **/
    private Long currValueMax;

    /** 选项空值/非空值查询 **/
    private Boolean optionsIsNull;

    /** 最小创建时间 **/
    private Date createTimeMin;

    /** 最大创建时间 **/
    private Date createTimeMax;

    /** 最小创建时间 **/
    private Date createTimeMinWithDay;

    /** 最大创建时间 **/
    private Date createTimeMaxWithDay;

    /** 获取主键列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置主键列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加主键 **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取主键前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置主键前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取主键后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置主键后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取主键模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置主键模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断类型是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTypeIsNull() {
        return typeIsNull;
    }

    /**
     * 设置类型空值查询(true:空值查询|false:非空值查询)
     *
     * @param typeIsNull 类型空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTypeIsNull(Boolean typeIsNull) {
        this.typeIsNull = typeIsNull;
    }

    /** 获取类型列表 **/
    public List<String> getTypes() {
        return types;
    }

    /** 设置类型列表 **/
    public void setTypes(List<String> types) {
        this.types = types;
    }

    /** 增加类型 **/
    public void addType(String... types) {
        if (this.types == null) {
            this.types = new ArrayList<>();
        }
        this.types.addAll(Arrays.asList(types));
    }

    /** 获取类型前模匹配条件 **/
    public String getTypeStarts() {
        return typeStarts;
    }

    /** 设置类型前模匹配条件 **/
    public void setTypeStarts(String typeStarts) {
        this.typeStarts = typeStarts;
    }

    /** 获取类型后模匹配条件 **/
    public String getTypeEnds() {
        return typeEnds;
    }

    /** 设置类型后模匹配条件 **/
    public void setTypeEnds(String typeEnds) {
        this.typeEnds = typeEnds;
    }

    /** 获取类型模糊查询条件 **/
    public String getTypeLike() {
        return typeLike;
    }

    /** 设置类型模糊查询条件 **/
    public void setTypeLike(String typeLike) {
        this.typeLike = typeLike;
    }

    /** 判断子类型是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSubtypeIsNull() {
        return subtypeIsNull;
    }

    /**
     * 设置子类型空值查询(true:空值查询|false:非空值查询)
     *
     * @param subtypeIsNull 子类型空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSubtypeIsNull(Boolean subtypeIsNull) {
        this.subtypeIsNull = subtypeIsNull;
    }

    /** 获取子类型前模匹配条件 **/
    public String getSubtypeStarts() {
        return subtypeStarts;
    }

    /** 设置子类型前模匹配条件 **/
    public void setSubtypeStarts(String subtypeStarts) {
        this.subtypeStarts = subtypeStarts;
    }

    /** 获取子类型后模匹配条件 **/
    public String getSubtypeEnds() {
        return subtypeEnds;
    }

    /** 设置子类型后模匹配条件 **/
    public void setSubtypeEnds(String subtypeEnds) {
        this.subtypeEnds = subtypeEnds;
    }

    /** 获取子类型模糊查询条件 **/
    public String getSubtypeLike() {
        return subtypeLike;
    }

    /** 设置子类型模糊查询条件 **/
    public void setSubtypeLike(String subtypeLike) {
        this.subtypeLike = subtypeLike;
    }

    /** 判断名称是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getNameIsNull() {
        return nameIsNull;
    }

    /** 设置名称空值查询(true:空值查询|false:非空值查询) **/
    public void setNameIsNull(Boolean nameIsNull) {
        this.nameIsNull = nameIsNull;
    }

    /** 获取名称前模匹配条件 **/
    public String getNameStarts() {
        return nameStarts;
    }

    /** 设置名称前模匹配条件 **/
    public void setNameStarts(String nameStarts) {
        this.nameStarts = nameStarts;
    }

    /** 获取名称后模匹配条件 **/
    public String getNameEnds() {
        return nameEnds;
    }

    /** 设置名称后模匹配条件 **/
    public void setNameEnds(String nameEnds) {
        this.nameEnds = nameEnds;
    }

    /** 获取名称模糊查询条件 **/
    public String getNameLike() {
        return nameLike;
    }

    /** 设置名称模糊查询条件 **/
    public void setNameLike(String nameLike) {
        this.nameLike = nameLike;
    }

    /** 判断前缀是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getPrefixIsNull() {
        return prefixIsNull;
    }

    /** 设置前缀空值查询(true:空值查询|false:非空值查询) **/
    public void setPrefixIsNull(Boolean prefixIsNull) {
        this.prefixIsNull = prefixIsNull;
    }

    /** 获取前缀前模匹配条件 **/
    public String getPrefixStarts() {
        return prefixStarts;
    }

    /** 设置前缀前模匹配条件 **/
    public void setPrefixStarts(String prefixStarts) {
        this.prefixStarts = prefixStarts;
    }

    /** 获取前缀后模匹配条件 **/
    public String getPrefixEnds() {
        return prefixEnds;
    }

    /** 设置前缀后模匹配条件 **/
    public void setPrefixEnds(String prefixEnds) {
        this.prefixEnds = prefixEnds;
    }

    /** 获取前缀模糊查询条件 **/
    public String getPrefixLike() {
        return prefixLike;
    }

    /** 设置前缀模糊查询条件 **/
    public void setPrefixLike(String prefixLike) {
        this.prefixLike = prefixLike;
    }

    /** 判断序号的位数(仅在有前缀时生效)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getDigitNumberIsNull() {
        return digitNumberIsNull;
    }

    /**
     * 设置序号的位数(仅在有前缀时生效)空值查询(true:空值查询|false:非空值查询)
     *
     * @param digitNumberIsNull 序号的位数(仅在有前缀时生效)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDigitNumberIsNull(Boolean digitNumberIsNull) {
        this.digitNumberIsNull = digitNumberIsNull;
    }

    /** 获取最小序号的位数(仅在有前缀时生效) **/
    public Integer getDigitNumberMin() {
        return digitNumberMin;
    }

    /** 设置最小序号的位数(仅在有前缀时生效) **/
    public void setDigitNumberMin(Integer digitNumberMin) {
        this.digitNumberMin = digitNumberMin;
    }

    /** 获取最大序号的位数(仅在有前缀时生效) **/
    public Integer getDigitNumberMax() {
        return digitNumberMax;
    }

    /** 设置最大序号的位数(仅在有前缀时生效) **/
    public void setDigitNumberMax(Integer digitNumberMax) {
        this.digitNumberMax = digitNumberMax;
    }

    /** 判断初始值(0表示随机初始值, 大于0表示指定初始值)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getInitValueIsNull() {
        return initValueIsNull;
    }

    /**
     * 设置初始值(0表示随机初始值, 大于0表示指定初始值)空值查询(true:空值查询|false:非空值查询)
     *
     * @param initValueIsNull 初始值(0表示随机初始值, 大于0表示指定初始值)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setInitValueIsNull(Boolean initValueIsNull) {
        this.initValueIsNull = initValueIsNull;
    }

    /** 获取最小初始值(0表示随机初始值, 大于0表示指定初始值) **/
    public Long getInitValueMin() {
        return initValueMin;
    }

    /** 设置最小初始值(0表示随机初始值, 大于0表示指定初始值) **/
    public void setInitValueMin(Long initValueMin) {
        this.initValueMin = initValueMin;
    }

    /** 获取最大初始值(0表示随机初始值, 大于0表示指定初始值) **/
    public Long getInitValueMax() {
        return initValueMax;
    }

    /** 设置最大初始值(0表示随机初始值, 大于0表示指定初始值) **/
    public void setInitValueMax(Long initValueMax) {
        this.initValueMax = initValueMax;
    }

    /** 判断当前值是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getCurrValueIsNull() {
        return currValueIsNull;
    }

    /**
     * 设置当前值空值查询(true:空值查询|false:非空值查询)
     *
     * @param currValueIsNull 当前值空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setCurrValueIsNull(Boolean currValueIsNull) {
        this.currValueIsNull = currValueIsNull;
    }

    /** 获取最小当前值 **/
    public Long getCurrValueMin() {
        return currValueMin;
    }

    /** 设置最小当前值 **/
    public void setCurrValueMin(Long currValueMin) {
        this.currValueMin = currValueMin;
    }

    /** 获取最大当前值 **/
    public Long getCurrValueMax() {
        return currValueMax;
    }

    /** 设置最大当前值 **/
    public void setCurrValueMax(Long currValueMax) {
        this.currValueMax = currValueMax;
    }

    /** 判断选项是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getOptionsIsNull() {
        return optionsIsNull;
    }

    /** 设置选项空值查询(true:空值查询|false:非空值查询) **/
    public void setOptionsIsNull(Boolean optionsIsNull) {
        this.optionsIsNull = optionsIsNull;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMin() {
        return createTimeMin;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMin(Date createTimeMin) {
        this.createTimeMin = createTimeMin;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMax() {
        return createTimeMax;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMax(Date createTimeMax) {
        this.createTimeMax = createTimeMax;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMinWithDay() {
        return createTimeMinWithDay;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMinWithDay(Date createTimeMinWithDay) {
        this.createTimeMinWithDay = createTimeMinWithDay;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMaxWithDay() {
        return createTimeMaxWithDay;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMaxWithDay(Date createTimeMaxWithDay) {
        this.createTimeMaxWithDay = createTimeMaxWithDay;
    }

}